/*
 * MotorBusqueda.h
 *
 *  Created on: 13/11/2011
 *      Author: agustin
 */

#ifndef MOTORBUSQUEDA_H_
#define MOTORBUSQUEDA_H_
#include <iostream>
#include <set>
#include <math.h>
#include "ArbolB.h"
#include "Documentos.h"
using namespace std;

typedef struct reg_rank {
	int documento;
	size_t rank;
} reg_rank;

typedef struct reg_set_docs {
	size_t docId;
	float puntaje;
} reg_set_docs;

struct classcomp {
	bool operator()(const reg_set_docs& lhs, const reg_set_docs& rhs) const {
		return lhs.docId < rhs.docId;
	}
};

struct classcomp_puntaje {
	bool operator()(const reg_set_docs& lhs, const reg_set_docs& rhs) const {
		return lhs.puntaje < rhs.puntaje;
	}
};

class MotorBusqueda {
public:
	MotorBusqueda();
	Lista<reg_rank>* buscar(string query);
	virtual ~MotorBusqueda();
private:
	ArbolB* arbol;
};

#endif /* MOTORBUSQUEDA_H_ */
